NAND flash memory, as well as other types of non-volatile memories (“NVMs”), are commonly used for mass storage. For example, consumer electronics such as portable media players often include flash memory to store music, videos, and other media.
An NVM may include blocks containing multiple memory cells, where each memory cell can be configured either as a single-level cell (“SLC”) or a multi-level cell (“MLC”). When a block is operating in a MLC mode, the block is capable of storing more data as compared to a block operating in a SLC mode. However, the MLC mode is generally less reliable than the SLC mode. That is, a block operating in a MLC mode may be more susceptible to read errors as compared to a block operating in a SLC mode.
For performance purposes, a system having an NVM can initially store data in a SLC mode. Then, when additional space needs to be freed up in the NVM, the stored data can be compacted to a MLC mode. Such a compacting process, however, may be inefficient and may unnecessarily wear out the NVM. Furthermore, such a compacting process can cause a loss of bandwidth and increase the probability of user-perceptible delays.